<?php

	/**
	 * Administración de Archivos, uso interno para la creación de los archivos creados
   * por los Generator.
   *
   * @category cormo
   * @package Core
   * @author Germán Dario Peraferrer <gperaferrer@gmail.com>
   * @copyright Copyright (c) 2007 Germán Dario Peraferrer - Beetec
   * @version 1.0 Beta
   * @license http://www.opensource.org/licenses/bsd-license.php New BSD License
   * @link http://code.google.com/p/cormoframework/
   * @link http://www.beetec.com.ar
	 */

   abstract class File {

    /**
     * Elimina el Directorio que pasamos como parametro y todo su Contenido
     *
     * @param string $dir
     * @return boolean;
     */
    public static function removeFolder($dir){
      if(!is_dir($dir)) {
        return false;
      }

      for($s = DIRECTORY_SEPARATOR, $stack = array($dir), $emptyDirs = array($dir); $dir = array_pop($stack);) {
        if(!($handle = @dir($dir))) {
          continue;
        }

        while(false !== $item = $handle->read())
          $item != '.' && $item != '..' && (is_dir($path = $handle->path . $s . $item) ?
          array_push($stack, $path) && array_push($emptyDirs, $path) : unlink($path));
          $handle->close();
      }

      for($i = count($emptyDirs); $i--; $return = rmdir($emptyDirs[$i]));
    }

    /**
     * Crea un archivo fisico en el sistema de archivos.
     *
     * @param string $file
     * @param string $contenido
     */
    public static function createFile($file, $contenido) {
      if (!$fp = fopen($file, "a"))	{
        echo "No se ha podido crear el Archivo: ".$file."<br>";
      }	else	{
        if (!$write = fputs($fp, $contenido))	{
          echo "No se ha logrado guardar el contenido del Archivo: ".$file."<br>";
        }
        fclose($fp);
      }
    }
     
   }

?>
